package com.hzlx;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.ruoyi.common.core.annotation.Excel;
import com.ruoyi.common.core.web.domain.BaseEntity;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;

import java.math.BigDecimal;
import java.util.Date;

/**
 * BOM组件明细对象 mes_bom_components
 * 
 * @author ruoyi
 * @date 2025-07-01
 */
public class BomComponentsDto
{
    private static final long serialVersionUID = 1L;

    /** 明细ID */
    private Long componentId;

    /** BOM ID */
    @Excel(name = "BOM ID")
    private Long bomId;

    /** 物料ID */
    @Excel(name = "物料ID")
    private Integer componentMaterialId;

    /** 数量 */
    @Excel(name = "数量")
    private BigDecimal quantity;

    public Integer getComponentMaterialId() {
        return componentMaterialId;
    }

    public void setComponentMaterialId(Integer componentMaterialId) {
        this.componentMaterialId = componentMaterialId;
    }

    /** 计量单位 */
    @Excel(name = "计量单位")
    private String unitOfMeasure;

    /** 备注 */
    @Excel(name = "备注")
    private String notes;

    /** 创建时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "创建时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date createdAt;

    /** 最后更新时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "最后更新时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date updatedAt;

    /** 工序ID */
    @Excel(name = "工序ID")
    private Long operationId;

    public void setComponentId(Long componentId) 
    {
        this.componentId = componentId;
    }

    public Long getComponentId() 
    {
        return componentId;
    }

    public void setBomId(Long bomId) 
    {
        this.bomId = bomId;
    }

    public Long getBomId() 
    {
        return bomId;
    }


    public void setQuantity(BigDecimal quantity) 
    {
        this.quantity = quantity;
    }

    public BigDecimal getQuantity() 
    {
        return quantity;
    }

    public void setUnitOfMeasure(String unitOfMeasure) 
    {
        this.unitOfMeasure = unitOfMeasure;
    }

    public String getUnitOfMeasure() 
    {
        return unitOfMeasure;
    }

    public void setNotes(String notes) 
    {
        this.notes = notes;
    }

    public String getNotes() 
    {
        return notes;
    }

    public void setCreatedAt(Date createdAt) 
    {
        this.createdAt = createdAt;
    }

    public Date getCreatedAt() 
    {
        return createdAt;
    }

    public void setUpdatedAt(Date updatedAt) 
    {
        this.updatedAt = updatedAt;
    }

    public Date getUpdatedAt() 
    {
        return updatedAt;
    }

    public void setOperationId(Long operationId) 
    {
        this.operationId = operationId;
    }

    public Long getOperationId() 
    {
        return operationId;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
            .append("componentId", getComponentId())
            .append("bomId", getBomId())
            .append("componentMaterialId", getComponentMaterialId())
            .append("quantity", getQuantity())
            .append("unitOfMeasure", getUnitOfMeasure())
            .append("notes", getNotes())
            .append("createdAt", getCreatedAt())
            .append("updatedAt", getUpdatedAt())
            .append("operationId", getOperationId())
            .toString();
    }
}
